<?php
class Administrator_UserSystem_Model extends BaseModel{
	public function getAllJoin(){
		return $this->getEntity()->getAllJoin();
	}
	public function login($username,$password){
		if(!isset($username) || !isset($password)){
			$this->_hasError =  true;
			$this->_error = "Vui lòng nhập tên đăng nhập và mật khẩu.";
			return null;
		}
		if($username == "" && $password == ""){
			$this->_hasError =  true;
			$this->_error = "Vui lòng nhập tên đăng nhập và mật khẩu.";
			return null;
		}
		if($username == ""){
			$this->_hasError =  true;
			$this->_error = "Vui lòng nhập tên đăng nhập";
			return null;
		}
		if($password == ""){
			$this->_hasError =  true;
			$this->_error = "Vui lòng nhập tên mật khẩu";
			return null;
		}
		$password = StringUltil::encryptPassWord($password);
		$result1 = $this->getEntity()->getByUserName($username);
		if(count($result1)<1){
			$this->_hasError =  true;
			$this->_error = "Tên đăng nhập không tồn tại, vui lòng liên hệ Admin.";
			return null;
		}
		else{
			$identity = $result1[0];
			if($identity[UserSystem::PASSWORD] == $password){
				unset($identity[UserSystem::PASSWORD]);
				return $identity;
			}
		}
		$this->_hasError =  true;
		$this->_error = "Sai tên đăng nhập hoặc mật khẩu, vui lòng nhập lại";
		return null;
	}
	/**
	 * (non-PHPdoc)
	 * @see library/Model/BaseModel::validate()
	 */
	public function validate1($entity){
		$key = ":".UserSystem::PASSWORD;
		if(!isset($entity[$key]) || $entity[$key] == ""){
			$result = $this->getEntity()->getByID1($entity);
			if(isset($result)){
				$entity[$key] = $result[UserSystem::PASSWORD];
			}
		}
		else{
			$entity[$key] = md5($entity[$key]);
		}
		return $entity;
	}
	/**
	 * get All Role data for combobox source.
	 * @return array
	 */
	public function getRoleForComboBox(){
		$sql = 'SELECT r.id as ' . Constant::COMBOBOX_VALUE .', r.name as ' . Constant::COMBOBOX_TEXT .' FROM role as r';
		return DBHelper::getInstance()->fetchAll($sql);
	}
}